﻿using PH5_2004A.Shopping.DTO;
using PH5_2004A.Shopping.IRespository;
using PH5_2004A.Shopping.IService;
using PH5_2004A.Shopping.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PH5_2004A.Shopping.Service
{
    /*
     * 2022/10/15
     * 具体业务逻辑处理
     * 
     * **/
    public class MemberService : IMemberService
    {
        IMemberRespository _respository;
        public MemberService(IMemberRespository respository)
        {
            _respository = respository;
        }


        /// <summary>
        /// 会员登录处理
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public MemberLoginOutputDto Login(MemberLoginInputDto dto)
        {
            MemberLoginOutputDto outputDto = new();

            //var list = new List<MemberModel>();  //模拟所有的会员数据列表
            //list.Add(new MemberModel { Name = "lcg", Password = "123" }); //测试数据

            var list = _respository.Query();

            //1、判断用户名是否存在（需要注意：用户名是唯一的）
            var m = list.Where(x => x.Name.Equals(dto.UserName)).FirstOrDefault();
            if(m == null)
            {
                //这说明用户名不存在
                outputDto.Statue = false;
                outputDto.Info = "用户名不存在";
                return outputDto;
            }

            //2、判断用户名密码是否正确
            //（需要注意：数据库中的密码是加密的，用户传过来的，没有加密码）
            if(!dto.Password.Equals(m.Password))
            {
                //这说明密码不正确
                outputDto.Statue = false;
                outputDto.Info = "用户名或密码不正确";
                return outputDto;
            }

            //3、如果用户名存在，密码也正确，则登录成功
            outputDto.Statue = true;
            outputDto.Info = m;
            return outputDto;
        }

        public bool Regist(MemberModel model)
        {
            //要去判断用户名是否被注册

            //要去把密码加密


            throw new NotImplementedException();
        }
    }
}
